#pragma once

#define CUDNN_BACKEND_H_ MCDNN_MCDNN_BACKEND_H_

#define cudnnBackendCreateDescriptor  mcdnnBackendCreateDescriptor
#define cudnnBackendDestroyDescriptor mcdnnBackendDestroyDescriptor
#define cudnnBackendInitialize        mcdnnBackendInitialize
#define cudnnBackendFinalize          mcdnnBackendFinalize
#define cudnnBackendSetAttribute      mcdnnBackendSetAttribute
#define cudnnBackendGetAttribute      mcdnnBackendGetAttribute
#define cudnnBackendExecute           mcdnnBackendExecute

#define cudnnBackendHeurMode_t   mcdnnBackendHeurMode_t
#define CUDNN_HEUR_MODE_INSTANT  MCDNN_HEUR_MODE_INSTANT
#define CUDNN_HEUR_MODE_B        MCDNN_HEUR_MODE_B
#define CUDNN_HEUR_MODES_COUNT   MCDNN_HEUR_MODES_COUNT
#define CUDNN_HEUR_MODE_A        MCDNN_HEUR_MODE_A
#define CUDNN_HEUR_MODE_FALLBACK MCDNN_HEUR_MODE_FALLBACK

#define cudnnBackendLayoutType_t           mcdnnBackendLayoutType_t
#define CUDNN_LAYOUT_TYPE_PREFERRED_NCHW   MCDNN_LAYOUT_TYPE_PREFERRED_NCHW
#define CUDNN_LAYOUT_TYPE_PREFERRED_NHWC   MCDNN_LAYOUT_TYPE_PREFERRED_NHWC
#define CUDNN_LAYOUT_TYPE_PREFERRED_PAD4CK MCDNN_LAYOUT_TYPE_PREFERRED_PAD4CK
#define CUDNN_LAYOUT_TYPE_PREFERRED_PAD8CK MCDNN_LAYOUT_TYPE_PREFERRED_PAD8CK
#define CUDNN_LAYOUT_TYPE_COUNT            MCDNN_LAYOUT_TYPE_COUNT

#define cudnnBackendKnobType_t           mcdnnBackendKnobType_t
#define CUDNN_KNOB_TYPE_SPLIT_K          MCDNN_KNOB_TYPE_SPLIT_K
#define CUDNN_KNOB_TYPE_SWIZZLE          MCDNN_KNOB_TYPE_SWIZZLE
#define CUDNN_KNOB_TYPE_TILE_SIZE        MCDNN_KNOB_TYPE_TILE_SIZE
#define CUDNN_KNOB_TYPE_USE_TEX          MCDNN_KNOB_TYPE_USE_TEX
#define CUDNN_KNOB_TYPE_EDGE             MCDNN_KNOB_TYPE_EDGE
#define CUDNN_KNOB_TYPE_KBLOCK           MCDNN_KNOB_TYPE_KBLOCK
#define CUDNN_KNOB_TYPE_LDGA             MCDNN_KNOB_TYPE_LDGA
#define CUDNN_KNOB_TYPE_LDGB             MCDNN_KNOB_TYPE_LDGB
#define CUDNN_KNOB_TYPE_CHUNK_K          MCDNN_KNOB_TYPE_CHUNK_K
#define CUDNN_KNOB_TYPE_SPLIT_H          MCDNN_KNOB_TYPE_SPLIT_H
#define CUDNN_KNOB_TYPE_WINO_TILE        MCDNN_KNOB_TYPE_WINO_TILE
#define CUDNN_KNOB_TYPE_MULTIPLY         MCDNN_KNOB_TYPE_MULTIPLY
#define CUDNN_KNOB_TYPE_SPLIT_K_BUF      MCDNN_KNOB_TYPE_SPLIT_K_BUF
#define CUDNN_KNOB_TYPE_TILEK            MCDNN_KNOB_TYPE_TILEK
#define CUDNN_KNOB_TYPE_STAGES           MCDNN_KNOB_TYPE_STAGES
#define CUDNN_KNOB_TYPE_REDUCTION_MODE   MCDNN_KNOB_TYPE_REDUCTION_MODE
#define CUDNN_KNOB_TYPE_CTA_SPLIT_K_MODE MCDNN_KNOB_TYPE_CTA_SPLIT_K_MODE
#define CUDNN_KNOB_TYPE_SPLIT_K_SLC      MCDNN_KNOB_TYPE_SPLIT_K_SLC
#define CUDNN_KNOB_TYPE_IDX_MODE         MCDNN_KNOB_TYPE_IDX_MODE
#define CUDNN_KNOB_TYPE_SLICED           MCDNN_KNOB_TYPE_SLICED
#define CUDNN_KNOB_TYPE_SPLIT_RS         MCDNN_KNOB_TYPE_SPLIT_RS
#define CUDNN_KNOB_TYPE_SINGLEBUFFER     MCDNN_KNOB_TYPE_SINGLEBUFFER
#define CUDNN_KNOB_TYPE_LDGC             MCDNN_KNOB_TYPE_LDGC
#define CUDNN_KNOB_TYPE_SPECFILT         MCDNN_KNOB_TYPE_SPECFILT
#define CUDNN_KNOB_TYPE_KERNEL_CFG       MCDNN_KNOB_TYPE_KERNEL_CFG
#define CUDNN_KNOB_TYPE_WORKSPACE        MCDNN_KNOB_TYPE_WORKSPACE
#define CUDNN_KNOB_TYPE_COUNTS           MCDNN_KNOB_TYPE_COUNTS

#define cudnnBackendNumericalNote_t              mcdnnBackendNumericalNote_t
#define CUDNN_NUMERICAL_NOTE_TENSOR_CORE         MCDNN_NUMERICAL_NOTE_TENSOR_CORE
#define CUDNN_NUMERICAL_NOTE_DOWN_CONVERT_INPUTS MCDNN_NUMERICAL_NOTE_DOWN_CONVERT_INPUTS
#define CUDNN_NUMERICAL_NOTE_REDUCED_PRECISION_REDUCTION                                           \
    MCDNN_NUMERICAL_NOTE_REDUCED_PRECISION_REDUCTION
#define CUDNN_NUMERICAL_NOTE_FFT                 MCDNN_NUMERICAL_NOTE_FFT
#define CUDNN_NUMERICAL_NOTE_NONDETERMINISTIC    MCDNN_NUMERICAL_NOTE_NONDETERMINISTIC
#define CUDNN_NUMERICAL_NOTE_WINOGRAD            MCDNN_NUMERICAL_NOTE_WINOGRAD
#define CUDNN_NUMERICAL_NOTE_TYPE_COUNT          MCDNN_NUMERICAL_NOTE_TYPE_COUNT
#define CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_4x4   MCDNN_NUMERICAL_NOTE_WINOGRAD_TILE_4x4
#define CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_6x6   MCDNN_NUMERICAL_NOTE_WINOGRAD_TILE_6x6
#define CUDNN_NUMERICAL_NOTE_WINOGRAD_TILE_13x13 MCDNN_NUMERICAL_NOTE_WINOGRAD_TILE_13x13

#define cudnnBackendDescriptorType_t               mcdnnBackendDescriptorType_t
#define CUDNN_BACKEND_POINTWISE_DESCRIPTOR         MCDNN_BACKEND_POINTWISE_DESCRIPTOR
#define CUDNN_BACKEND_CONVOLUTION_DESCRIPTOR       MCDNN_BACKEND_CONVOLUTION_DESCRIPTOR
#define CUDNN_BACKEND_ENGINE_DESCRIPTOR            MCDNN_BACKEND_ENGINE_DESCRIPTOR
#define CUDNN_BACKEND_ENGINECFG_DESCRIPTOR         MCDNN_BACKEND_ENGINECFG_DESCRIPTOR
#define CUDNN_BACKEND_ENGINEHEUR_DESCRIPTOR        MCDNN_BACKEND_ENGINEHEUR_DESCRIPTOR
#define CUDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR    MCDNN_BACKEND_EXECUTION_PLAN_DESCRIPTOR
#define CUDNN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR MCDNN_BACKEND_INTERMEDIATE_INFO_DESCRIPTOR
#define CUDNN_BACKEND_KNOB_CHOICE_DESCRIPTOR       MCDNN_BACKEND_KNOB_CHOICE_DESCRIPTOR
#define CUDNN_BACKEND_KNOB_INFO_DESCRIPTOR         MCDNN_BACKEND_KNOB_INFO_DESCRIPTOR
#define CUDNN_BACKEND_LAYOUT_INFO_DESCRIPTOR       MCDNN_BACKEND_LAYOUT_INFO_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR                                     \
    MCDNN_BACKEND_OPERATION_CONVOLUTION_FORWARD_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR                             \
    MCDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_FILTER_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR                               \
    MCDNN_BACKEND_OPERATION_CONVOLUTION_BACKWARD_DATA_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR MCDNN_BACKEND_OPERATION_POINTWISE_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR MCDNN_BACKEND_OPERATION_GEN_STATS_DESCRIPTOR
#define CUDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR      MCDNN_BACKEND_OPERATIONGRAPH_DESCRIPTOR
#define CUDNN_BACKEND_VARIANT_PACK_DESCRIPTOR        MCDNN_BACKEND_VARIANT_PACK_DESCRIPTOR
#define CUDNN_BACKEND_TENSOR_DESCRIPTOR              MCDNN_BACKEND_TENSOR_DESCRIPTOR
#define CUDNN_BACKEND_MATMUL_DESCRIPTOR              MCDNN_BACKEND_MATMUL_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_MATMUL_DESCRIPTOR    MCDNN_BACKEND_OPERATION_MATMUL_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_BN_FINALIZE_STATISTICS_DESCRIPTOR                                  \
    MCDNN_BACKEND_OPERATION_BN_FINALIZE_STATISTICS_DESCRIPTOR
#define CUDNN_BACKEND_REDUCTION_DESCRIPTOR           MCDNN_BACKEND_REDUCTION_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_REDUCTION_DESCRIPTOR MCDNN_BACKEND_OPERATION_REDUCTION_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_BN_BWD_WEIGHTS_DESCRIPTOR                                          \
    MCDNN_BACKEND_OPERATION_BN_BWD_WEIGHTS_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_CONCAT_DESCRIPTOR MCDNN_BACKEND_OPERATION_CONCAT_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_NORM_BACKWARD_DESCRIPTOR                                           \
    MCDNN_BACKEND_OPERATION_NORM_BACKWARD_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_NORM_FORWARD_DESCRIPTOR                                            \
    MCDNN_BACKEND_OPERATION_NORM_FORWARD_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_RESAMPLE_BWD_DESCRIPTOR                                            \
    MCDNN_BACKEND_OPERATION_RESAMPLE_BWD_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_RESAMPLE_FWD_DESCRIPTOR                                            \
    MCDNN_BACKEND_OPERATION_RESAMPLE_FWD_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_SIGNAL_DESCRIPTOR  MCDNN_BACKEND_OPERATION_SIGNAL_DESCRIPTOR
#define CUDNN_BACKEND_RESAMPLE_DESCRIPTOR          MCDNN_BACKEND_RESAMPLE_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_RESHAPE_DESCRIPTOR MCDNN_BACKEND_OPERATION_RESHAPE_DESCRIPTOR
#define CUDNN_BACKEND_RNG_DESCRIPTOR               MCDNN_BACKEND_RNG_DESCRIPTOR
#define CUDNN_BACKEND_OPERATION_RNG_DESCRIPTOR     MCDNN_BACKEND_OPERATION_RNG_DESCRIPTOR

#define cudnnBackendNormMode_t mcdnnBackendNormMode_t
#define CUDNN_LAYER_NORM       MCDNN_LAYER_NORM
#define CUDNN_INSTANCE_NORM    MCDNN_INSTANCE_NORM
#define CUDNN_BATCH_NORM       MCDNN_BATCH_NORM
#define CUDNN_GROUP_NORM       MCDNN_GROUP_NORM

#define cudnnBackendBehaviorNote_t              mcdnnBackendBehaviorNote_t
#define CUDNN_BEHAVIOR_NOTE_RUNTIME_COMPILATION MCDNN_BEHAVIOR_NOTE_RUNTIME_COMPILATION
#define CUDNN_BEHAVIOR_NOTE_REQUIRES_FILTER_INT8x32_REORDER                                        \
    MCDNN_BEHAVIOR_NOTE_REQUIRES_FILTER_INT8x32_REORDER
#define CUDNN_BEHAVIOR_NOTE_REQUIRES_BIAS_INT8x32_REORDER                                          \
    MCDNN_BEHAVIOR_NOTE_REQUIRES_BIAS_INT8x32_REORDER
#define CUDNN_BEHAVIOR_NOTE_TYPE_COUNT MCDNN_BEHAVIOR_NOTE_TYPE_COUNT

#define cudnnPaddingMode_t mcdnnPaddingMode_t
#define CUDNN_ZERO_PAD     MCDNN_ZERO_PAD
#define CUDNN_NEG_INF_PAD  MCDNN_NEG_INF_PAD
#define CUDNN_EDGE_VAL_PAD MCDNN_EDGE_VAL_PAD

#define cudnnBackendAttributeType_t        mcdnnBackendAttributeType_t
#define CUDNN_TYPE_HANDLE                  MCDNN_TYPE_HANDLE
#define CUDNN_TYPE_DATA_TYPE               MCDNN_TYPE_DATA_TYPE
#define CUDNN_TYPE_BOOLEAN                 MCDNN_TYPE_BOOLEAN
#define CUDNN_TYPE_INT64                   MCDNN_TYPE_INT64
#define CUDNN_TYPE_FLOAT                   MCDNN_TYPE_FLOAT
#define CUDNN_TYPE_DOUBLE                  MCDNN_TYPE_DOUBLE
#define CUDNN_TYPE_VOID_PTR                MCDNN_TYPE_VOID_PTR
#define CUDNN_TYPE_CONVOLUTION_MODE        MCDNN_TYPE_CONVOLUTION_MODE
#define CUDNN_TYPE_HEUR_MODE               MCDNN_TYPE_HEUR_MODE
#define CUDNN_TYPE_KNOB_TYPE               MCDNN_TYPE_KNOB_TYPE
#define CUDNN_TYPE_NAN_PROPOGATION         MCDNN_TYPE_NAN_PROPOGATION
#define CUDNN_TYPE_NUMERICAL_NOTE          MCDNN_TYPE_NUMERICAL_NOTE
#define CUDNN_TYPE_LAYOUT_TYPE             MCDNN_TYPE_LAYOUT_TYPE
#define CUDNN_TYPE_ATTRIB_NAME             MCDNN_TYPE_ATTRIB_NAME
#define CUDNN_TYPE_POINTWISE_MODE          MCDNN_TYPE_POINTWISE_MODE
#define CUDNN_TYPE_BACKEND_DESCRIPTOR      MCDNN_TYPE_BACKEND_DESCRIPTOR
#define CUDNN_TYPE_GENSTATS_MODE           MCDNN_TYPE_GENSTATS_MODE
#define CUDNN_TYPE_BN_FINALIZE_STATS_MODE  MCDNN_TYPE_BN_FINALIZE_STATS_MODE
#define CUDNN_TYPE_REDUCTION_OPERATOR_TYPE MCDNN_TYPE_REDUCTION_OPERATOR_TYPE
#define CUDNN_TYPE_BEHAVIOR_NOTE           MCDNN_TYPE_BEHAVIOR_NOTE
#define CUDNN_TYPE_TENSOR_REORDERING_MODE  MCDNN_TYPE_TENSOR_REORDERING_MODE
#define CUDNN_TYPE_RESAMPLE_MODE           MCDNN_TYPE_RESAMPLE_MODE
#define CUDNN_TYPE_PADDING_MODE            MCDNN_TYPE_PADDING_MODE
#define CUDNN_TYPE_INT32                   MCDNN_TYPE_INT32
#define CUDNN_TYPE_CHAR                    MCDNN_TYPE_CHAR
#define CUDNN_TYPE_SIGNAL_MODE             MCDNN_TYPE_SIGNAL_MODE
#define CUDNN_TYPE_FRACTION                MCDNN_TYPE_FRACTION
#define CUDNN_TYPE_NORM_MODE               MCDNN_TYPE_NORM_MODE
#define CUDNN_TYPE_NORM_FWD_PHASE          MCDNN_TYPE_NORM_FWD_PHASE
#define CUDNN_TYPE_RNG_DISTRIBUTION        MCDNN_TYPE_RNG_DISTRIBUTION

#define cudnnBackendAttributeName_t                mcdnnBackendAttributeName_t
#define CUDNN_ATTR_POINTWISE_MODE                  MCDNN_ATTR_POINTWISE_MODE
#define CUDNN_ATTR_POINTWISE_MATH_PREC             MCDNN_ATTR_POINTWISE_MATH_PREC
#define CUDNN_ATTR_POINTWISE_NAN_PROPAGATION       MCDNN_ATTR_POINTWISE_NAN_PROPAGATION
#define CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP       MCDNN_ATTR_POINTWISE_RELU_LOWER_CLIP
#define CUDNN_ATTR_POINTWISE_RELU_UPPER_CLIP       MCDNN_ATTR_POINTWISE_RELU_UPPER_CLIP
#define CUDNN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE MCDNN_ATTR_POINTWISE_RELU_LOWER_CLIP_SLOPE
#define CUDNN_ATTR_POINTWISE_ELU_ALPHA             MCDNN_ATTR_POINTWISE_ELU_ALPHA
#define CUDNN_ATTR_POINTWISE_SOFTPLUS_BETA         MCDNN_ATTR_POINTWISE_SOFTPLUS_BETA
#define CUDNN_ATTR_POINTWISE_SWISH_BETA            MCDNN_ATTR_POINTWISE_SWISH_BETA
#define CUDNN_ATTR_CONVOLUTION_COMP_TYPE           MCDNN_ATTR_CONVOLUTION_COMP_TYPE
#define CUDNN_ATTR_CONVOLUTION_CONV_MODE           MCDNN_ATTR_CONVOLUTION_CONV_MODE
#define CUDNN_ATTR_CONVOLUTION_DILATIONS           MCDNN_ATTR_CONVOLUTION_DILATIONS
#define CUDNN_ATTR_CONVOLUTION_FILTER_STRIDES      MCDNN_ATTR_CONVOLUTION_FILTER_STRIDES
#define CUDNN_ATTR_CONVOLUTION_POST_PADDINGS       MCDNN_ATTR_CONVOLUTION_POST_PADDINGS
#define CUDNN_ATTR_CONVOLUTION_PRE_PADDINGS        MCDNN_ATTR_CONVOLUTION_PRE_PADDINGS
#define CUDNN_ATTR_CONVOLUTION_SPATIAL_DIMS        MCDNN_ATTR_CONVOLUTION_SPATIAL_DIMS
#define CUDNN_ATTR_ENGINEHEUR_MODE                 MCDNN_ATTR_ENGINEHEUR_MODE
#define CUDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH      MCDNN_ATTR_ENGINEHEUR_OPERATION_GRAPH
#define CUDNN_ATTR_ENGINEHEUR_RESULTS              MCDNN_ATTR_ENGINEHEUR_RESULTS
#define CUDNN_ATTR_ENGINECFG_ENGINE                MCDNN_ATTR_ENGINECFG_ENGINE
#define CUDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO     MCDNN_ATTR_ENGINECFG_INTERMEDIATE_INFO
#define CUDNN_ATTR_ENGINECFG_KNOB_CHOICES          MCDNN_ATTR_ENGINECFG_KNOB_CHOICES
#define CUDNN_ATTR_EXECUTION_PLAN_HANDLE           MCDNN_ATTR_EXECUTION_PLAN_HANDLE
#define CUDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG    MCDNN_ATTR_EXECUTION_PLAN_ENGINE_CONFIG
#define CUDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE   MCDNN_ATTR_EXECUTION_PLAN_WORKSPACE_SIZE
#define CUDNN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS                                       \
    MCDNN_ATTR_EXECUTION_PLAN_COMPUTED_INTERMEDIATE_UIDS
#define CUDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS                                       \
    MCDNN_ATTR_EXECUTION_PLAN_RUN_ONLY_INTERMEDIATE_UIDS
#define CUDNN_ATTR_EXECUTION_PLAN_JSON_REPRESENTATION MCDNN_ATTR_EXECUTION_PLAN_JSON_REPRESENTATION
#define CUDNN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID        MCDNN_ATTR_INTERMEDIATE_INFO_UNIQUE_ID
#define CUDNN_ATTR_INTERMEDIATE_INFO_SIZE             MCDNN_ATTR_INTERMEDIATE_INFO_SIZE
#define CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS                                           \
    MCDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_DATA_UIDS
#define CUDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES                                          \
    MCDNN_ATTR_INTERMEDIATE_INFO_DEPENDENT_ATTRIBUTES
#define CUDNN_ATTR_KNOB_CHOICE_KNOB_TYPE  MCDNN_ATTR_KNOB_CHOICE_KNOB_TYPE
#define CUDNN_ATTR_KNOB_CHOICE_KNOB_VALUE MCDNN_ATTR_KNOB_CHOICE_KNOB_VALUE
#define CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA                                             \
    MCDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_ALPHA
#define CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA MCDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_BETA
#define CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC                                         \
    MCDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_CONV_DESC
#define CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W MCDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_W
#define CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X MCDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_X
#define CUDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y MCDNN_ATTR_OPERATION_CONVOLUTION_FORWARD_Y
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA                                            \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_ALPHA
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA                                             \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_BETA
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC                                        \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_CONV_DESC
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W  MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_W
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DX
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_DATA_DY
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA                                          \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_ALPHA
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA                                           \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_BETA
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC                                      \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_CONV_DESC
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW                                             \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DW
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_X
#define CUDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY                                             \
    MCDNN_ATTR_OPERATION_CONVOLUTION_BWD_FILTER_DY
#define CUDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR MCDNN_ATTR_OPERATION_POINTWISE_PW_DESCRIPTOR
#define CUDNN_ATTR_OPERATION_POINTWISE_XDESC         MCDNN_ATTR_OPERATION_POINTWISE_XDESC
#define CUDNN_ATTR_OPERATION_POINTWISE_BDESC         MCDNN_ATTR_OPERATION_POINTWISE_BDESC
#define CUDNN_ATTR_OPERATION_POINTWISE_YDESC         MCDNN_ATTR_OPERATION_POINTWISE_YDESC
#define CUDNN_ATTR_OPERATION_POINTWISE_ALPHA1        MCDNN_ATTR_OPERATION_POINTWISE_ALPHA1
#define CUDNN_ATTR_OPERATION_POINTWISE_ALPHA2        MCDNN_ATTR_OPERATION_POINTWISE_ALPHA2
#define CUDNN_ATTR_OPERATION_POINTWISE_DXDESC        MCDNN_ATTR_OPERATION_POINTWISE_DXDESC
#define CUDNN_ATTR_OPERATION_POINTWISE_DYDESC        MCDNN_ATTR_OPERATION_POINTWISE_DYDESC
#define CUDNN_ATTR_OPERATION_GENSTATS_MODE           MCDNN_ATTR_OPERATION_GENSTATS_MODE
#define CUDNN_ATTR_OPERATION_GENSTATS_MATH_PREC      MCDNN_ATTR_OPERATION_GENSTATS_MATH_PREC
#define CUDNN_ATTR_OPERATION_GENSTATS_XDESC          MCDNN_ATTR_OPERATION_GENSTATS_XDESC
#define CUDNN_ATTR_OPERATION_GENSTATS_SUMDESC        MCDNN_ATTR_OPERATION_GENSTATS_SUMDESC
#define CUDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC      MCDNN_ATTR_OPERATION_GENSTATS_SQSUMDESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE  MCDNN_ATTR_OPERATION_BN_FINALIZE_STATS_MODE
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC   MCDNN_ATTR_OPERATION_BN_FINALIZE_MATH_PREC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC  MCDNN_ATTR_OPERATION_BN_FINALIZE_Y_SUM_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC                                             \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_Y_SQ_SUM_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC MCDNN_ATTR_OPERATION_BN_FINALIZE_SCALE_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC  MCDNN_ATTR_OPERATION_BN_FINALIZE_BIAS_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC                                    \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_MEAN_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC                                     \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_PREV_RUNNING_VAR_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC                                 \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_MEAN_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC                                  \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_UPDATED_RUNNING_VAR_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC                                           \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_MEAN_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC                                        \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_SAVED_INV_STD_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC                                             \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_EQ_SCALE_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC MCDNN_ATTR_OPERATION_BN_FINALIZE_EQ_BIAS_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC                                          \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_ACCUM_COUNT_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC MCDNN_ATTR_OPERATION_BN_FINALIZE_EPSILON_DESC
#define CUDNN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC                                   \
    MCDNN_ATTR_OPERATION_BN_FINALIZE_EXP_AVERATE_FACTOR_DESC
#define CUDNN_ATTR_OPERATIONGRAPH_HANDLE              MCDNN_ATTR_OPERATIONGRAPH_HANDLE
#define CUDNN_ATTR_OPERATIONGRAPH_OPS                 MCDNN_ATTR_OPERATIONGRAPH_OPS
#define CUDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT MCDNN_ATTR_OPERATIONGRAPH_ENGINE_GLOBAL_COUNT
#define CUDNN_ATTR_TENSOR_BYTE_ALIGNMENT              MCDNN_ATTR_TENSOR_BYTE_ALIGNMENT
#define CUDNN_ATTR_TENSOR_DATA_TYPE                   MCDNN_ATTR_TENSOR_DATA_TYPE
#define CUDNN_ATTR_TENSOR_DIMENSIONS                  MCDNN_ATTR_TENSOR_DIMENSIONS
#define CUDNN_ATTR_TENSOR_STRIDES                     MCDNN_ATTR_TENSOR_STRIDES
#define CUDNN_ATTR_TENSOR_VECTOR_COUNT                MCDNN_ATTR_TENSOR_VECTOR_COUNT
#define CUDNN_ATTR_TENSOR_VECTORIZED_DIMENSION        MCDNN_ATTR_TENSOR_VECTORIZED_DIMENSION
#define CUDNN_ATTR_TENSOR_UNIQUE_ID                   MCDNN_ATTR_TENSOR_UNIQUE_ID
#define CUDNN_ATTR_TENSOR_IS_VIRTUAL                  MCDNN_ATTR_TENSOR_IS_VIRTUAL
#define CUDNN_ATTR_TENSOR_IS_BY_VALUE                 MCDNN_ATTR_TENSOR_IS_BY_VALUE
#define CUDNN_ATTR_VARIANT_PACK_UNIQUE_IDS            MCDNN_ATTR_VARIANT_PACK_UNIQUE_IDS
#define CUDNN_ATTR_VARIANT_PACK_DATA_POINTERS         MCDNN_ATTR_VARIANT_PACK_DATA_POINTERS
#define CUDNN_ATTR_VARIANT_PACK_INTERMEDIATES         MCDNN_ATTR_VARIANT_PACK_INTERMEDIATES
#define CUDNN_ATTR_VARIANT_PACK_WORKSPACE             MCDNN_ATTR_VARIANT_PACK_WORKSPACE
#define CUDNN_ATTR_LAYOUT_INFO_TENSOR_UID             MCDNN_ATTR_LAYOUT_INFO_TENSOR_UID
#define CUDNN_ATTR_LAYOUT_INFO_TYPES                  MCDNN_ATTR_LAYOUT_INFO_TYPES
#define CUDNN_ATTR_KNOB_INFO_TYPE                     MCDNN_ATTR_KNOB_INFO_TYPE
#define CUDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE            MCDNN_ATTR_KNOB_INFO_MAXIMUM_VALUE
#define CUDNN_ATTR_KNOB_INFO_MINIMUM_VALUE            MCDNN_ATTR_KNOB_INFO_MINIMUM_VALUE
#define CUDNN_ATTR_KNOB_INFO_STRIDE                   MCDNN_ATTR_KNOB_INFO_STRIDE
#define CUDNN_ATTR_ENGINE_OPERATION_GRAPH             MCDNN_ATTR_ENGINE_OPERATION_GRAPH
#define CUDNN_ATTR_ENGINE_GLOBAL_INDEX                MCDNN_ATTR_ENGINE_GLOBAL_INDEX
#define CUDNN_ATTR_ENGINE_KNOB_INFO                   MCDNN_ATTR_ENGINE_KNOB_INFO
#define CUDNN_ATTR_ENGINE_NUMERICAL_NOTE              MCDNN_ATTR_ENGINE_NUMERICAL_NOTE
#define CUDNN_ATTR_ENGINE_LAYOUT_INFO                 MCDNN_ATTR_ENGINE_LAYOUT_INFO
#define CUDNN_ATTR_MATMUL_COMP_TYPE                   MCDNN_ATTR_MATMUL_COMP_TYPE
#define CUDNN_ATTR_OPERATION_MATMUL_ADESC             MCDNN_ATTR_OPERATION_MATMUL_ADESC
#define CUDNN_ATTR_OPERATION_MATMUL_BDESC             MCDNN_ATTR_OPERATION_MATMUL_BDESC
#define CUDNN_ATTR_OPERATION_MATMUL_CDESC             MCDNN_ATTR_OPERATION_MATMUL_CDESC
#define CUDNN_ATTR_OPERATION_MATMUL_DESC              MCDNN_ATTR_OPERATION_MATMUL_DESC
#define CUDNN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT                                \
    MCDNN_ATTR_OPERATION_MATMUL_IRREGULARLY_STRIDED_BATCH_COUNT
#define CUDNN_ATTR_REDUCTION_OPERATOR        MCDNN_ATTR_REDUCTION_OPERATOR
#define CUDNN_ATTR_REDUCTION_COMP_TYPE       MCDNN_ATTR_REDUCTION_COMP_TYPE
#define CUDNN_ATTR_OPERATION_REDUCTION_XDESC MCDNN_ATTR_OPERATION_REDUCTION_XDESC
#define CUDNN_ATTR_OPERATION_REDUCTION_YDESC MCDNN_ATTR_OPERATION_REDUCTION_YDESC
#define CUDNN_ATTR_OPERATION_REDUCTION_DESC  MCDNN_ATTR_OPERATION_REDUCTION_DESC
#define CUDNN_ATTR_POINTWISE_AXIS            MCDNN_ATTR_POINTWISE_AXIS
#define CUDNN_ATTR_OPERATION_POINTWISE_TDESC MCDNN_ATTR_OPERATION_POINTWISE_TDESC
#define CUDNN_ATTR_TENSOR_REORDERING_MODE    MCDNN_ATTR_TENSOR_REORDERING_MODE
#define CUDNN_ATTR_ENGINE_BEHAVIOR_NOTE      MCDNN_ATTR_ENGINE_BEHAVIOR_NOTE
#define CUDNN_ATTR_OPERATION_MATMUL_GEMM_M_OVERRIDE_DESC                                           \
    MCDNN_ATTR_OPERATION_MATMUL_GEMM_M_OVERRIDE_DESC
#define CUDNN_ATTR_OPERATION_MATMUL_GEMM_N_OVERRIDE_DESC                                           \
    MCDNN_ATTR_OPERATION_MATMUL_GEMM_N_OVERRIDE_DESC
#define CUDNN_ATTR_OPERATION_MATMUL_GEMM_K_OVERRIDE_DESC                                           \
    MCDNN_ATTR_OPERATION_MATMUL_GEMM_K_OVERRIDE_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MATH_PREC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_MEAN_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC                                            \
    MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_INVSTD_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC                                          \
    MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_BN_SCALE_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC  MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_X_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DY_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC                                         \
    MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_SCALE_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC                                          \
    MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_DBN_BIAS_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC                                       \
    MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_DY_SCALE_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC                                        \
    MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_X_SCALE_DESC
#define CUDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS MCDNN_ATTR_OPERATION_BN_BWD_WEIGHTS_EQ_BIAS
#define CUDNN_ATTR_RESAMPLE_MODE                    MCDNN_ATTR_RESAMPLE_MODE
#define CUDNN_ATTR_RESAMPLE_COMP_TYPE               MCDNN_ATTR_RESAMPLE_COMP_TYPE
#define CUDNN_ATTR_RESAMPLE_SPATIAL_DIMS            MCDNN_ATTR_RESAMPLE_SPATIAL_DIMS
#define CUDNN_ATTR_RESAMPLE_POST_PADDINGS           MCDNN_ATTR_RESAMPLE_POST_PADDINGS
#define CUDNN_ATTR_RESAMPLE_PRE_PADDINGS            MCDNN_ATTR_RESAMPLE_PRE_PADDINGS
#define CUDNN_ATTR_RESAMPLE_STRIDES                 MCDNN_ATTR_RESAMPLE_STRIDES
#define CUDNN_ATTR_RESAMPLE_WINDOW_DIMS             MCDNN_ATTR_RESAMPLE_WINDOW_DIMS
#define CUDNN_ATTR_RESAMPLE_NAN_PROPAGATION         MCDNN_ATTR_RESAMPLE_NAN_PROPAGATION
#define CUDNN_ATTR_RESAMPLE_PADDING_MODE            MCDNN_ATTR_RESAMPLE_PADDING_MODE
#define CUDNN_ATTR_OPERATION_RESAMPLE_FWD_XDESC     MCDNN_ATTR_OPERATION_RESAMPLE_FWD_XDESC
#define CUDNN_ATTR_OPERATION_RESAMPLE_FWD_YDESC     MCDNN_ATTR_OPERATION_RESAMPLE_FWD_YDESC
#define CUDNN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC   MCDNN_ATTR_OPERATION_RESAMPLE_FWD_IDXDESC
#define CUDNN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA     MCDNN_ATTR_OPERATION_RESAMPLE_FWD_ALPHA
#define CUDNN_ATTR_OPERATION_RESAMPLE_FWD_BETA      MCDNN_ATTR_OPERATION_RESAMPLE_FWD_BETA
#define CUDNN_ATTR_OPERATION_RESAMPLE_FWD_DESC      MCDNN_ATTR_OPERATION_RESAMPLE_FWD_DESC
#define CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC    MCDNN_ATTR_OPERATION_RESAMPLE_BWD_DXDESC
#define CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC    MCDNN_ATTR_OPERATION_RESAMPLE_BWD_DYDESC
#define CUDNN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC   MCDNN_ATTR_OPERATION_RESAMPLE_BWD_IDXDESC
#define CUDNN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA     MCDNN_ATTR_OPERATION_RESAMPLE_BWD_ALPHA
#define CUDNN_ATTR_OPERATION_RESAMPLE_BWD_BETA      MCDNN_ATTR_OPERATION_RESAMPLE_BWD_BETA
#define CUDNN_ATTR_OPERATION_RESAMPLE_BWD_DESC      MCDNN_ATTR_OPERATION_RESAMPLE_BWD_DESC
#define CUDNN_ATTR_OPERATION_CONCAT_AXIS            MCDNN_ATTR_OPERATION_CONCAT_AXIS
#define CUDNN_ATTR_OPERATION_CONCAT_INPUT_DESCS     MCDNN_ATTR_OPERATION_CONCAT_INPUT_DESCS
#define CUDNN_ATTR_OPERATION_CONCAT_INPLACE_INDEX   MCDNN_ATTR_OPERATION_CONCAT_INPLACE_INDEX
#define CUDNN_ATTR_OPERATION_CONCAT_OUTPUT_DESC     MCDNN_ATTR_OPERATION_CONCAT_OUTPUT_DESC
#define CUDNN_ATTR_OPERATION_SIGNAL_MODE            MCDNN_ATTR_OPERATION_SIGNAL_MODE
#define CUDNN_ATTR_OPERATION_SIGNAL_FLAGDESC        MCDNN_ATTR_OPERATION_SIGNAL_FLAGDESC
#define CUDNN_ATTR_OPERATION_SIGNAL_VALUE           MCDNN_ATTR_OPERATION_SIGNAL_VALUE
#define CUDNN_ATTR_OPERATION_SIGNAL_XDESC           MCDNN_ATTR_OPERATION_SIGNAL_XDESC
#define CUDNN_ATTR_OPERATION_SIGNAL_YDESC           MCDNN_ATTR_OPERATION_SIGNAL_YDESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_MODE          MCDNN_ATTR_OPERATION_NORM_FWD_MODE
#define CUDNN_ATTR_OPERATION_NORM_FWD_PHASE         MCDNN_ATTR_OPERATION_NORM_FWD_PHASE
#define CUDNN_ATTR_OPERATION_NORM_FWD_XDESC         MCDNN_ATTR_OPERATION_NORM_FWD_XDESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_MEAN_DESC     MCDNN_ATTR_OPERATION_NORM_FWD_MEAN_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_INV_VARIANCE_DESC                                            \
    MCDNN_ATTR_OPERATION_NORM_FWD_INV_VARIANCE_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_SCALE_DESC   MCDNN_ATTR_OPERATION_NORM_FWD_SCALE_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_BIAS_DESC    MCDNN_ATTR_OPERATION_NORM_FWD_BIAS_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_EPSILON_DESC MCDNN_ATTR_OPERATION_NORM_FWD_EPSILON_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_EXP_AVG_FACTOR_DESC                                          \
    MCDNN_ATTR_OPERATION_NORM_FWD_EXP_AVG_FACTOR_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_MEAN_DESC                                      \
    MCDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_MEAN_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_VAR_DESC                                       \
    MCDNN_ATTR_OPERATION_NORM_FWD_INPUT_RUNNING_VAR_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_MEAN_DESC                                     \
    MCDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_MEAN_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_VAR_DESC                                      \
    MCDNN_ATTR_OPERATION_NORM_FWD_OUTPUT_RUNNING_VAR_DESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_YDESC           MCDNN_ATTR_OPERATION_NORM_FWD_YDESC
#define CUDNN_ATTR_OPERATION_NORM_FWD_PEER_STAT_DESCS MCDNN_ATTR_OPERATION_NORM_FWD_PEER_STAT_DESCS
#define CUDNN_ATTR_OPERATION_NORM_BWD_MODE            MCDNN_ATTR_OPERATION_NORM_BWD_MODE
#define CUDNN_ATTR_OPERATION_NORM_BWD_XDESC           MCDNN_ATTR_OPERATION_NORM_BWD_XDESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_MEAN_DESC       MCDNN_ATTR_OPERATION_NORM_BWD_MEAN_DESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_INV_VARIANCE_DESC                                            \
    MCDNN_ATTR_OPERATION_NORM_BWD_INV_VARIANCE_DESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_DYDESC          MCDNN_ATTR_OPERATION_NORM_BWD_DYDESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_SCALE_DESC      MCDNN_ATTR_OPERATION_NORM_BWD_SCALE_DESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_EPSILON_DESC    MCDNN_ATTR_OPERATION_NORM_BWD_EPSILON_DESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_DSCALE_DESC     MCDNN_ATTR_OPERATION_NORM_BWD_DSCALE_DESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_DBIAS_DESC      MCDNN_ATTR_OPERATION_NORM_BWD_DBIAS_DESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_DXDESC          MCDNN_ATTR_OPERATION_NORM_BWD_DXDESC
#define CUDNN_ATTR_OPERATION_NORM_BWD_PEER_STAT_DESCS MCDNN_ATTR_OPERATION_NORM_BWD_PEER_STAT_DESCS
#define CUDNN_ATTR_OPERATION_RESHAPE_XDESC            MCDNN_ATTR_OPERATION_RESHAPE_XDESC
#define CUDNN_ATTR_OPERATION_RESHAPE_YDESC            MCDNN_ATTR_OPERATION_RESHAPE_YDESC
#define CUDNN_ATTR_RNG_DISTRIBUTION                   MCDNN_ATTR_RNG_DISTRIBUTION
#define CUDNN_ATTR_RNG_NORMAL_DIST_MEAN               MCDNN_ATTR_RNG_NORMAL_DIST_MEAN
#define CUDNN_ATTR_RNG_NORMAL_DIST_STANDARD_DEVIATION MCDNN_ATTR_RNG_NORMAL_DIST_STANDARD_DEVIATION
#define CUDNN_ATTR_RNG_UNIFORM_DIST_MAXIMUM           MCDNN_ATTR_RNG_UNIFORM_DIST_MAXIMUM
#define CUDNN_ATTR_RNG_UNIFORM_DIST_MINIMUM           MCDNN_ATTR_RNG_UNIFORM_DIST_MINIMUM
#define CUDNN_ATTR_RNG_BERNOULLI_DIST_PROBABILITY     MCDNN_ATTR_RNG_BERNOULLI_DIST_PROBABILITY
#define CUDNN_ATTR_OPERATION_RNG_YDESC                MCDNN_ATTR_OPERATION_RNG_YDESC
#define CUDNN_ATTR_OPERATION_RNG_SEED                 MCDNN_ATTR_OPERATION_RNG_SEED
#define CUDNN_ATTR_OPERATION_RNG_DESC                 MCDNN_ATTR_OPERATION_RNG_DESC

#define cudnnBackendNormFwdPhase_t mcdnnBackendNormFwdPhase_t
#define CUDNN_NORM_FWD_INFERENCE   MCDNN_NORM_FWD_INFERENCE
#define CUDNN_NORM_FWD_TRAINING    MCDNN_NORM_FWD_TRAINING

#define cudnnBnFinalizeStatsMode_t             mcdnnBnFinalizeStatsMode_t
#define CUDNN_BN_FINALIZE_STATISTICS_TRAINING  MCDNN_BN_FINALIZE_STATISTICS_TRAINING
#define CUDNN_BN_FINALIZE_STATISTICS_INFERENCE MCDNN_BN_FINALIZE_STATISTICS_INFERENCE

#define cudnnGenStatsMode_t      mcdnnGenStatsMode_t
#define CUDNN_GENSTATS_SUM_SQSUM MCDNN_GENSTATS_SUM_SQSUM

#define cudnnPointwiseMode_t                 mcdnnPointwiseMode_t
#define CUDNN_POINTWISE_ADD                  MCDNN_POINTWISE_ADD
#define CUDNN_POINTWISE_MUL                  MCDNN_POINTWISE_MUL
#define CUDNN_POINTWISE_MIN                  MCDNN_POINTWISE_MIN
#define CUDNN_POINTWISE_MAX                  MCDNN_POINTWISE_MAX
#define CUDNN_POINTWISE_SQRT                 MCDNN_POINTWISE_SQRT
#define CUDNN_POINTWISE_ADD_SQUARE           MCDNN_POINTWISE_ADD_SQUARE
#define CUDNN_POINTWISE_DIV                  MCDNN_POINTWISE_DIV
#define CUDNN_POINTWISE_MOD                  MCDNN_POINTWISE_MOD
#define CUDNN_POINTWISE_POW                  MCDNN_POINTWISE_POW
#define CUDNN_POINTWISE_SUB                  MCDNN_POINTWISE_SUB
#define CUDNN_POINTWISE_ABS                  MCDNN_POINTWISE_ABS
#define CUDNN_POINTWISE_CEIL                 MCDNN_POINTWISE_CEIL
#define CUDNN_POINTWISE_COS                  MCDNN_POINTWISE_COS
#define CUDNN_POINTWISE_EXP                  MCDNN_POINTWISE_EXP
#define CUDNN_POINTWISE_FLOOR                MCDNN_POINTWISE_FLOOR
#define CUDNN_POINTWISE_LOG                  MCDNN_POINTWISE_LOG
#define CUDNN_POINTWISE_NEG                  MCDNN_POINTWISE_NEG
#define CUDNN_POINTWISE_RSQRT                MCDNN_POINTWISE_RSQRT
#define CUDNN_POINTWISE_SIN                  MCDNN_POINTWISE_SIN
#define CUDNN_POINTWISE_TAN                  MCDNN_POINTWISE_TAN
#define CUDNN_POINTWISE_ERF                  MCDNN_POINTWISE_ERF
#define CUDNN_POINTWISE_IDENTITY             MCDNN_POINTWISE_IDENTITY
#define CUDNN_POINTWISE_RELU_FWD             MCDNN_POINTWISE_RELU_FWD
#define CUDNN_POINTWISE_TANH_FWD             MCDNN_POINTWISE_TANH_FWD
#define CUDNN_POINTWISE_SIGMOID_FWD          MCDNN_POINTWISE_SIGMOID_FWD
#define CUDNN_POINTWISE_ELU_FWD              MCDNN_POINTWISE_ELU_FWD
#define CUDNN_POINTWISE_GELU_FWD             MCDNN_POINTWISE_GELU_FWD
#define CUDNN_POINTWISE_SOFTPLUS_FWD         MCDNN_POINTWISE_SOFTPLUS_FWD
#define CUDNN_POINTWISE_SWISH_FWD            MCDNN_POINTWISE_SWISH_FWD
#define CUDNN_POINTWISE_GELU_APPROX_TANH_FWD MCDNN_POINTWISE_GELU_APPROX_TANH_FWD
#define CUDNN_POINTWISE_RELU_BWD             MCDNN_POINTWISE_RELU_BWD
#define CUDNN_POINTWISE_TANH_BWD             MCDNN_POINTWISE_TANH_BWD
#define CUDNN_POINTWISE_SIGMOID_BWD          MCDNN_POINTWISE_SIGMOID_BWD
#define CUDNN_POINTWISE_ELU_BWD              MCDNN_POINTWISE_ELU_BWD
#define CUDNN_POINTWISE_GELU_BWD             MCDNN_POINTWISE_GELU_BWD
#define CUDNN_POINTWISE_SOFTPLUS_BWD         MCDNN_POINTWISE_SOFTPLUS_BWD
#define CUDNN_POINTWISE_SWISH_BWD            MCDNN_POINTWISE_SWISH_BWD
#define CUDNN_POINTWISE_GELU_APPROX_TANH_BWD MCDNN_POINTWISE_GELU_APPROX_TANH_BWD
#define CUDNN_POINTWISE_CMP_EQ               MCDNN_POINTWISE_CMP_EQ
#define CUDNN_POINTWISE_CMP_NEQ              MCDNN_POINTWISE_CMP_NEQ
#define CUDNN_POINTWISE_CMP_GT               MCDNN_POINTWISE_CMP_GT
#define CUDNN_POINTWISE_CMP_GE               MCDNN_POINTWISE_CMP_GE
#define CUDNN_POINTWISE_CMP_LT               MCDNN_POINTWISE_CMP_LT
#define CUDNN_POINTWISE_CMP_LE               MCDNN_POINTWISE_CMP_LE
#define CUDNN_POINTWISE_LOGICAL_AND          MCDNN_POINTWISE_LOGICAL_AND
#define CUDNN_POINTWISE_LOGICAL_OR           MCDNN_POINTWISE_LOGICAL_OR
#define CUDNN_POINTWISE_LOGICAL_NOT          MCDNN_POINTWISE_LOGICAL_NOT
#define CUDNN_POINTWISE_GEN_INDEX            MCDNN_POINTWISE_GEN_INDEX
#define CUDNN_POINTWISE_BINARY_SELECT        MCDNN_POINTWISE_BINARY_SELECT

#define cudnnResampleMode_t                    mcdnnResampleMode_t
#define CUDNN_RESAMPLE_NEAREST                 MCDNN_RESAMPLE_NEAREST
#define CUDNN_RESAMPLE_BILINEAR                MCDNN_RESAMPLE_BILINEAR
#define CUDNN_RESAMPLE_AVGPOOL                 MCDNN_RESAMPLE_AVGPOOL
#define CUDNN_RESAMPLE_AVGPOOL_INCLUDE_PADDING MCDNN_RESAMPLE_AVGPOOL_INCLUDE_PADDING
#define CUDNN_RESAMPLE_AVGPOOL_EXCLUDE_PADDING MCDNN_RESAMPLE_AVGPOOL_EXCLUDE_PADDING
#define CUDNN_RESAMPLE_MAXPOOL                 MCDNN_RESAMPLE_MAXPOOL

#define cudnnSignalMode_t mcdnnSignalMode_t
#define CUDNN_SIGNAL_SET  MCDNN_SIGNAL_SET
#define CUDNN_SIGNAL_WAIT MCDNN_SIGNAL_WAIT

#define cudnnBackendTensorReordering_t  mcdnnBackendTensorReordering_t
#define CUDNN_TENSOR_REORDERING_NONE    MCDNN_TENSOR_REORDERING_NONE
#define CUDNN_TENSOR_REORDERING_INT8x32 MCDNN_TENSOR_REORDERING_INT8x32

#define cudnnBackendDescriptor_t mcdnnBackendDescriptor_t

#define cudnnFraction_t     mcdnnFraction_t
#define cudnnFractionStruct mcdnnFractionStruct
